Communication devices using microprocessors are continually requiring increases in their memory storage requirements. Expanding the internal memory in a microprocessor causes increases in die size and is very costly. In applications where additional memory is required, some microprocessors can be configured in an expanded mode for accessing external memory. In expanded mode, the microprocessor allows the software, running in the external memory, to read/write to an on-chip EEPROM (electrically erasable programmable read only memory). This can create a problem when security data, such as security algorithms and secret keys, is maintained in EEPROM and becomes accessible to the external world. At present, an intruder could replace the external memory with his own software in order to read the EEPROM thus obtaining the security algorithm and secret keys. The intruder could also attempt access to the internal EEPROM data using an internal RAM (random access memory) register to load and execute his own code. Presently microprocessors lock the address bus and data bus as a means for protection when operating in an internal mode, also known as single chip or non-expanded mode. When the internal mode is enabled, the microprocessor is protected because it operates using only the internal memory. While this technique provides software protection for on chip memory, microprocessor devices that are interfaced to external peripheral devices are left vulnerable to unauthorized access while operating in the expanded mode.
In expanded mode, all security for the microprocessor is lost because the EEPROM can still be read, making it undesirable to use external memory. More security problems could arise if an intruder were to try to download his own software code into internal RAM from the external memory in order to attempt access to the EEPROM. Techniques for protecting internal memory include instruction decoding to determine if the instruction is a read/write attempt to internal memory but this method uses decoding circuitry which can become complex. Another technique checks to see if an instruction falls within an address range to allow access to the internal memory, this method also uses an address decoder. Protection methods that rely on using security keys to validate an instruction from external memory use complex logic circuitry to protect the internal memory and present the danger of access from an intruder being able to break the security code and gain access to proprietary information in the internal memory.
Hence, there is a need for a microprocessor having external memory capability that provides protection to the internal memory while allowing executable code to be stored to the external memory device. A microprocessor that would not use up memory and time for decoding addresses and determining types of instructions would provide a more efficient means for protecting the internal memory.